package com.bbex.entity;

import com.bbex.sql.SqlField;
import com.bbex.sql.SqlTable;
import lombok.Data;

import java.math.BigDecimal;

/**
 * UserCoinVolumeBill.
 * <p>
 *    用户bb资产操作审请.
 * <p>
 * 19-1-2上午11:47
 *
 * @author chenbin sixh
 */
@SqlTable("js_plat_user_coin_volume_bill_history")
@Data
public class UserCoinVolumeBillHistory extends BaseEntity {

    /**
     * 用户id;
     */
    @SqlField("user_id")
    private String userId;

    /**
     * 币总信息.
     */
    @SqlField("coin_symbol")
    private String coinSymbol;

    /**
     * 优先级，5为默认. 数字越大，优先级越高.
     */
    @SqlField("priority")
    private Integer priority;

    /**
     * 外部调用，自行传入的信息。
     */
    @SqlField("ref_key")
    private String refKey;

    /**
     * 需要操作的指令.
     * {@link com.bbex.enums.UserCoinVolumeEventEnum}
     */
    @SqlField("op_sign")
    private Integer opSign;

    /**
     * 需要处理的数量.
     */
    @SqlField("op_volume")
    private BigDecimal opVolume;

    /**
     * 需要处理的锁定数量.
     */
    @SqlField("op_lock_volume")
    private BigDecimal opLockVolume;

    /**
     * 数据来源.
     */
    @SqlField("source")
    private String source;

    /**
     * 外部系统的标注.
     */
    @SqlField("mark")
    private String mark;

    /**
     * 处理的状态.
     * {@link com.bbex.enums.UserCoinVolumeBillStatusEnum}
     */
    @SqlField("status")
    private Integer status;

    /**
     * 确定是哪台hash服务器拉取
     */
    @SqlField("hash")
    private Integer hash;

    @SqlField("retry_count")
    private Integer retryCount;

    @SqlField("force_lock")
    private Boolean forceLock;

    public String getUserId() {
        return userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public String getCoinSymbol() {
        return coinSymbol;
    }

    public void setCoinSymbol(String coinSymbol) {
        this.coinSymbol = coinSymbol;
    }

    public Integer getPriority() {
        return priority;
    }

    public void setPriority(Integer priority) {
        this.priority = priority;
    }

    public String getRefKey() {
        return refKey;
    }

    public void setRefKey(String refKey) {
        this.refKey = refKey;
    }

    public Integer getOpSign() {
        return opSign;
    }

    public void setOpSign(Integer opSign) {
        this.opSign = opSign;
    }

    public BigDecimal getOpVolume() {
        return opVolume;
    }

    public void setOpVolume(BigDecimal opVolume) {
        this.opVolume = opVolume;
    }

    public BigDecimal getOpLockVolume() {
        return opLockVolume;
    }

    public void setOpLockVolume(BigDecimal opLockVolume) {
        this.opLockVolume = opLockVolume;
    }

    public String getSource() {
        return source;
    }

    public void setSource(String source) {
        this.source = source;
    }

    public String getMark() {
        return mark;
    }

    public void setMark(String mark) {
        this.mark = mark;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Integer getHash() {
        return hash;
    }

    public void setHash(Integer hash) {
        this.hash = hash;
    }

    public Integer getRetryCount() {
        return retryCount;
    }

    public void setRetryCount(Integer retryCount) {
        this.retryCount = retryCount;
    }

    public Boolean getForceLock() {
        return forceLock;
    }

    public void setForceLock(Boolean forceLock) {
        this.forceLock = forceLock;
    }
}


